package ink.tiptop.learn.convert;

import ink.tiptop.learn.convert.test.A_UsualConvert;
import ink.tiptop.learn.pojo.dto.orderInfo.AddOrderInfoDto;
import ink.tiptop.learn.pojo.dto.orderInfo.QueryOrderInfoDto;
import ink.tiptop.learn.pojo.dto.orderInfo.UpdateOrderInfoDto;
import ink.tiptop.learn.pojo.po.OrderInfoPO;
import ink.tiptop.learn.pojo.vo.OrderInfoVO;
import org.mapstruct.*;

import java.util.List;

/**
 * (OrderInfo)dto vo po 等转换接口
 *
 * @author zjf
 * @since 2020-08-14 20:51:45
 * default：映射器不使用组件模型，实例通常通过Mappers.getMapper(Class clazz)检索。
 * cdi：生成的映射器是应用程序范围的CDI bean，可以通过@Inject注解来检索。
 * spring：生成的映射器是一个单例范围的Spring bean，可以通过@Autowired检索。
 * jsr330：生成的映射器使用{@code @Named}进行注释，并且可以通过@Inject检索，例如使用Spring。
 */
@Mapper(componentModel = "spring",uses = A_UsualConvert.class) // 注入到spring
public interface OrderInfoConvert extends A_UsualConvert{

    OrderInfoVO convert(OrderInfoPO po);

    OrderInfoPO convert(OrderInfoVO vo);

    OrderInfoPO convert(AddOrderInfoDto dto);

    OrderInfoPO convert(QueryOrderInfoDto dto);

    OrderInfoPO convert(UpdateOrderInfoDto dto);

    List<OrderInfoVO> convertList(List<OrderInfoPO> vo);
}